java.lang প্যাকেজ Java এর একটি বিল্ট-ইন প্যাকেজ যা Java অ্যাপ্লিকেশনের জন্য অত্যন্ত গুরুত্বপূর্ণ ক্লাস এবং ইন্টারফেস সরবরাহ করে। এটি এমন কিছু গুরুত্বপূর্ণ ক্লাস ধারণ করে, যা অন্যান্য প্যাকেজ বা লাইব্রেরি থেকে সহজেই অ্যাক্সেস করা যায় এবং সেগুলি Java প্রোগ্রামগুলির জন্য অত্যাবশ্যক। এই প্যাকেজে থাকা অনেক ক্লাস এমনভাবে ডিজাইন করা হয়েছে, যাতে এগুলির ব্যবহারের জন্য কোনো নির্দিষ্ট ইনপোর্ট স্টেটমেন্টের প্রয়োজন পড়ে না।
এটির মধ্যে থাকা Object ক্লাস Java এর সবচেয়ে মৌলিক এবং গুরুত্বপূর্ণ ক্লাস। এটি Java ক্লাস হায়ারার্কি এর মূল ভিত্তি, কারণ সমস্ত ক্লাস সরাসরি বা পরোক্ষভাবে এই ক্লাস থেকে উত্তরাধিকার সূত্রে পায়।
Object ক্লাসের গুরুত্ব:
- Java ক্লাস হায়ারার্কির মূল ভিত্তি:
Objectক্লাস Java ক্লাস হায়ারার্কির মূল এবং এটি Java প্রোগ্রামের সব ক্লাসের সুপারক্লাস (superclass)। অর্থাৎ, Java-তে যে কোনো ক্লাসেরই এক বা একাধিক সুপারক্লাস থাকে, কিন্তু প্রত্যেক ক্লাসের একটি সর্বোচ্চ সুপারক্লাসObjectক্লাস, যা প্রত্যেক Java ক্লাসের অপ্রত্যক্ষ পূর্বসূরি (ancestor)।উদাহরণস্বরূপ, আপনি যদি একটি নতুন ক্লাস তৈরি করেন, যেমন:
class MyClass extends SomeOtherClass { // Your class code here }তাহলে
MyClassএর সুপারক্লাস হবেSomeOtherClassএবং পরোক্ষভাবে এর সুপারক্লাস হবেObject।
- Object ক্লাসের গুরুত্বপূর্ণ মেথড:
Objectক্লাসে কিছু অত্যন্ত গুরুত্বপূর্ণ মেথড রয়েছে, যা সব ক্লাসে উপলব্ধ থাকে (কারণ তারাObjectথেকে উত্তরাধিকারসূত্রে পাওয়া যায়)। কিছু গুরুত্বপূর্ণ মেথড হল:toString()মেথড:- এই মেথডটি সব ক্লাসে ডিফল্টভাবে উপলব্ধ থাকে এবং এটি একটি স্ট্রিং রিপ্রেজেন্টেশন প্রদান করে। আপনি যদি নিজের ক্লাসে
toString()মেথড ওভাররাইড করেন, তাহলে তা আপনার অবজেক্টের একটি মানব-পাঠযোগ্য রিপ্রেজেন্টেশন প্রদান করবে। উদাহরণ:
class MyClass { int id; String name; MyClass(int id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "MyClass{id=" + id + ", name='" + name + "'}"; } } public class Main { public static void main(String[] args) { MyClass obj = new MyClass(1, "John"); System.out.println(obj); // Output: MyClass{id=1, name='John'} } }
- এই মেথডটি সব ক্লাসে ডিফল্টভাবে উপলব্ধ থাকে এবং এটি একটি স্ট্রিং রিপ্রেজেন্টেশন প্রদান করে। আপনি যদি নিজের ক্লাসে
equals()মেথড:equals()মেথডটি অবজেক্টগুলির সমতা পরীক্ষা করতে ব্যবহৃত হয়। ডিফল্টভাবে,Objectক্লাসেরequals()মেথড কেবল অবজেক্টের রেফারেন্সের তুলনা করে, কিন্তু আপনি আপনার ক্লাসে এটি ওভাররাইড করে কন্টেন্ট সমতার তুলনা করতে পারেন।উদাহরণ:
class Person { String name; Person(String name) { this.name = name; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; Person person = (Person) obj; return name.equals(person.name); } } public class Main { public static void main(String[] args) { Person p1 = new Person("Alice"); Person p2 = new Person("Alice"); System.out.println(p1.equals(p2)); // Output: true } }
hashCode()মেথড:hashCode()মেথড অবজেক্টের একটি হ্যাশ কোড প্রদান করে, যা সাধারণতequals()মেথডের সাথে সম্পর্কিত থাকে। যখন আপনিequals()মেথডকে ওভাররাইড করেন, তখন আপনি সাধারণতhashCode()মেথডও ওভাররাইড করেন, যাতে অবজেক্টগুলির মধ্যে সঠিক সমতা এবং হ্যাশিং কাজ করে।উদাহরণ:
@Override public int hashCode() { return name.hashCode(); }
getClass()মেথড:getClass()মেথডটি অবজেক্টেরClassঅবজেক্ট প্রদান করে, যা ক্লাসের রuntime টাইপ সম্পর্কে তথ্য দেয়। এটি আপনাকে ক্লাসের তথ্য (যেমন ক্লাসের নাম) জানাতে সাহায্য করে।উদাহরণ:
MyClass obj = new MyClass(1, "John"); System.out.println(obj.getClass().getName()); // Output: MyClass
clone()মেথড:clone()মেথড একটি শ্যালো কপি তৈরি করতে ব্যবহৃত হয়। এটি সাধারণতCloneableইন্টারফেস ইমপ্লিমেন্ট করার জন্য ব্যবহৃত হয়, যাতে আপনি একটি অবজেক্টের কপি তৈরি করতে পারেন।উদাহরণ:
class MyClass implements Cloneable { int id; MyClass(int id) { this.id = id; } @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } }
- উত্তরাধিকার (Inheritance):
- যেহেতু সব Java ক্লাসই
Objectক্লাস থেকে উত্তরাধিকার পায়,Objectক্লাস সব ক্লাসের জন্য একটি সাধারণ বেস ক্লাস হিসাবে কাজ করে। এর মাধ্যমে, যেকোনো ক্লাসObjectক্লাসের মেথডগুলি হেরিট করে।
- যেহেতু সব Java ক্লাসই
- জেনেরিক্সের সাথে ব্যবহার:
Objectক্লাস Java-এ জেনেরিক্সের ব্যবহারকে সাধারণত সমর্থন করে।Objectক্লাসের অবজেক্ট যেকোনো টাইপের ডেটা ধারণ করতে সক্ষম, তাই এটি একটি উপযুক্ত টাইপ বেস ক্লাস হিসাবে ব্যবহৃত হয়।
Object ক্লাসের প্রধান মেথডগুলি:
public boolean equals(Object obj)public int hashCode()public String toString()protected Object clone() throws CloneNotSupportedExceptionpublic Class<?> getClass()public final void notify()public final void notifyAll()public final void wait()public final void wait(long timeout)
Object ক্লাস হল Java-এর সবচেয়ে মৌলিক ক্লাস, যা সব ক্লাসের জন্য একটি সুপারক্লাস। এটি Java ক্লাস হায়ারার্কির ভিত্তি, এবং এর মেথডগুলি (যেমন equals(), hashCode(), toString()) অনেক ক্ষেত্রে কোড রিইউজ এবং ডিবাগিংয়ে সাহায্য করে। Object ক্লাসের বৈশিষ্ট্যগুলি সকল Java ক্লাসে কার্যকরী হয়, তাই এটি Java প্রোগ্রামিং ভাষার একটি অপরিহার্য অংশ।
Read more